Idea page system and method

ABSTRACT

Idea Page systems, methods, user interfaces and related components are provided herein.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 60/623,323, entitled IDEA PAGE SYSTEM AND METHOD, filedon Oct. 29, 2004, which is hereby incorporated by reference.

BACKGROUND

Communication networks are well known in the computer communicationsfield. By definition, a network is a group of computers and associateddevices that are connected by communications facilities or links.Network communications can be of a permanent nature, such as via cables,or can be of a temporary nature, such as connections made throughtelephone or wireless links. Networks may vary in size, from a localarea network (“LAN”), consisting of a few computers or workstations andrelated devices, to a wide area network (“WAN”), which interconnectscomputers and LANs that are geographically dispersed, to a remote accessservice, which interconnects remote computers via temporarycommunication links. An internetwork, in turn, is the joining ofmultiple computer networks, both similar and dissimilar, by means ofgateways or routers that facilitate data transfer and conversion fromvarious networks. A well-known abbreviation for the term internetwork is“internet.” As currently understood, the capitalized term “Internet”refers to the collection of networks and routers that use the InternetProtocol (“IP”), along with higher-level protocols, such as theTransmission Control Protocol (“TCP”) or the Uniform Datagram Packet(“UDP”) protocol, to communicate with one another.

Likewise, projects, including projects using electronic information arewell known. It could be argued that many projects, ideas, plans,communities, teams, organizations, processes and methodologies originatewith a single person having a single thought—an idea, query or concernthat may initially be expressed in vague terms and which may remain aprivate thought for some time.

Over time, this idea, query or concern could develop and take shape: itmight be shared with other people; it could generate new ideas, concernsand issues; it could generate content, actions, activities, and tasks;it might be researched and formalized; it could be associated, formallyor informally, with other projects, activities, initiatives, people andcontent; and eventually, depending upon the scope and nature of the ideaand the economic, commercial, social or political environment in whichthe idea might develop and evolve, the original private, fuzzy ideacould develop into a larger, better organized, more fully resourced, andmore formally managed project.

On the other hand, the idea might remain a small, so-called“below-the-radar” effort that just concerns 1-2 people. Some ideas mightcross organizational, geographic and network boundaries; others mightremain local, or even private.

As people work to develop, enhance and modify their ideas, they mighthave access to a variety of traditional tools and technologies for ideamanagement, content management, project management and collaboration.However, some users may find limitations with these technologies astheir needs evolve. For example, each of the following technologies haveundesirable limitations in their handling of ideas.

Electronic mail (“e-mail”): e-mail may be used to share ideas betweenpeople, especially those who are separated by geography and time.Despite its apparent low cost and general ubiquity, e-mail may beineffective in managing decision-making regarding a large set ofcomplex, often interdependent ideas, actions and content.

In the early stages of an idea's development, much of the communicationmay be one-to-one or one-to-few with respect to the number of peopleinvolved. As the effort expands in scope, the communication may expandto a many-to-many degree of complexity. In such circumstances, e-mailmay act as a hindrance to effective decision making because of itsasynchronous nature. For example, if people were to use the “Reply toAll” feature that is common in e-mail clients with littlediscrimination, this might lead to a flood of ill-timed, unnecessary orunwanted commentary. Moreover, once users become part of an e-maildistribution list, they may find it difficult to exit the conversationalloop.

Shared folders: whether implemented on LANs, WANs, virtual privatenetworks (“VPNs”), personal area networks (“PANs”), Intranets, Extranetsor the Internet, shared folders may be ineffective when the underlyinginformation is not well structured or organized. Shared folders areoften based upon an underlying hierarchical structure, and when theinformation being developed and shared about an idea, activity orproject is not easily organized into a hierarchical structure, sharedfolders may not be an effective solution. It may also prove difficultwith shared folders, depending upon the particular implementation withina computer or electronic device, to easily gather within a single folderall the digital content (files, databases, e-mails, bookmarks, etc.)that pertains to a particular idea, activity or project.

Project management tools: project management tools are often designedfor a command-and-control environment characterized by written projectdefinitions, defined roles for team members, and defined activities andtasks. However, users may find that the ideas they are working with aresubject to frequent changes and their relatively loose structures. Suchideas may not be easily amenable to classic project managementmethodologies. When ideas, resources, strategies, tactics and prioritiesare fluid or subject to unexpected or frequent changes, projectmanagement tools may be more of a burden than an aid if the toolsrequire frequent updates and adjustments of their views of the idea orproject.

Groupware: groupware solutions are based upon the same hierarchicalapproach to organizing information as shared folders. Consequently,groupware may present the same disadvantages when dealing with ideas,activities and/or content that are not easily organized into ahierarchical structure.

Instant messaging: instant messaging (“IM”), voice-over-IP (“VoIP”) andsimilar chat software may handle the exchange of relatively simplecontent items, such as files, within very small groups. However, theymay not be equipped to handle the sharing of project context—the overallplan or strategy within which the content is most useful. Suchtechnologies may also not always be adept at managing different accesspermissions for different members of a project team, where it may bedesirable to control, at a granular level, who gets access to whichinformation, as well as who has the ability to make changes toparticular ideas, content or activities.

Consequently, people may find they lack a suitable method or system withwhich they could flexibly, effectively and/or efficiently manage thecreation, sharing and management of ideas, from early incarnations asprivate thoughts, to more extensive ideas used in projects.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a pictorial diagram of a number of interconnected devices thatprovide a connected user device relationship defining functionality inaccordance with various embodiments.

FIG. 2 is a block diagram of a user device that provides an exemplaryoperating environment for various embodiments.

FIGS. 3-5 illustrate exemplary screenshots of Idea Pages with multipleIdeas in accordance with various embodiments.

FIG. 6 illustrates an exemplary screenshot of a three dimensional IdeaPage with associated Ideas in accordance with various embodiments.

FIG. 7 illustrates an exemplary screenshot of Idea Pages with associatedIdeas in accordance with various embodiments.

FIG. 8 illustrates an exemplary diagram of Idea parentage in accordancewith various embodiments.

FIGS. 9-10 illustrate exemplary content associated with an Idea inaccordance with various embodiments.

FIGS. 11-15 illustrate exemplary screenshots of Idea Pages andassociated content in accordance with various embodiments.

FIG. 16 illustrates an exemplary user interface for presenting Ideas inaccordance with various embodiments.

FIGS. 17-20 illustrate exemplary user interface layouts for displayingIdeas and associated content in accordance with various embodiments.

FIG. 21 illustrates an exemplary view of a Model, View, Controllersystem design in accordance with various embodiments.

FIG. 22 illustrates an exemplary series of communications between a userdevice and a server for presenting Ideas in accordance with variousembodiments.

FIG. 23 illustrates an exemplary flow diagram of actions for presentingIdeas in accordance with various embodiments.

DETAILED DESCRIPTION

The detailed description that follows is represented largely in terms ofprocesses and symbolic representations of operations by conventionalcomputing components, including a processor, memory storage devices forthe processor, connected display devices and input devices. Furthermore,these processes and operations may utilize conventional computercomponents in a heterogeneous distributed computing environment,including remote file Servers, computer Servers and memory storagedevices. Each of these conventional distributed computing components maybe accessible by the processor via a communication network.

Reference is now made in detail to the description of the embodiments asillustrated in the drawings. While embodiments are described inconnection with the drawings and related descriptions, there is nointent to limit the scope to the embodiments disclosed herein. On thecontrary, the intent is to cover all alternatives, modifications andequivalents. In alternate embodiments, additional devices, orcombinations of illustrated devices, may be added to, or combined,without limiting the scope to the embodiments disclosed herein.

In general, non-limiting embodiments described below have Two- or three-(or more) dimensional “Idea Pages” that could enable users to developpreliminary thoughts, questions and ideas into plans, projects,processes, methodologies or initiatives. Any collection of Ideas couldbe organized together on a single Idea Page; a single “Idea” could existon more than one Idea Page; and an Idea could contain within it,recursively, multiple Idea Pages. In effect, an Idea and an Idea pageare different views of the same thing. An Idea that is expanded to viewits contents may be referred to as an Idea Page. Generally, workspacesin various embodiments may be viewed as Idea Pages. However, at a rootlevel, the base Idea Page may not be viewable other than as a workspace.

The user could also organize his/her digital content (e.g., files,e-mails, bookmarks, etc.) as well as tasks, issues, notes and otherlists of information around the Ideas on his/her Idea Pages. Ideas anddigital content (e.g., files, e-mails, bookmarks, etc.) as well astasks, issues, notes and other lists of information may be collectivelyreferred to as “Items.” An Item could be linked to Ideas on differentPages. The user could selectively share individual Ideas, or the itemslinked to individual Ideas, with other users of the system, includingsome circumstances where these other users may be located in differentgeographic locations, may be using different computer networks, may workfor different organizations or might be using different types ofcomputers and operating systems. Each item within the system could haveits own Access Control List that specifies which other users may haveaccess to the item, as well as the type of permissions each individualuser might have with respect to the item. The system transmits changeson Idea Pages, individual Ideas and the items associated with Ideas toall users who are listed on the relevant Access Control List. Thissystem could be implemented using a client-server architecture, as ahosted service run by a data center, or using a peer-to-peer networkarchitecture. The system could be used by individuals, groups, teams,organizations and distributed communities.

FIG. 1 illustrates an exemplary Idea Page system 100 having a number ofdevices used in exemplary embodiments. FIG. 1 illustrates a user device200 (illustrated in FIG. 2 and described below), a network 110, such asa wire or wireless communications network. Also in communication withthe network 110 is an Idea Page Server 150. In alternate embodiments,there may be more user devices 200 and/or Idea Page Servers 150. Infurther embodiments, the roles of user device 200 and/or Idea PageServer 150 may be performed by an integrated device (not shown) or maybe distributed across multiple other devices (not shown). In stillfurther embodiments, still additional devices (not shown) may beutilized in the Idea Page System 100.

FIG. 2 illustrates several components of an exemplary user device 200.In some embodiments, the user device 200 may include many morecomponents than those shown in FIG. 2. However, it is not necessary thatall of these generally conventional components be shown in order todisclose an illustrative embodiment. As shown in FIG. 2, the user device200 includes a network interface 230 for connecting to the network 110.Those of ordinary skill in the art will appreciate that the networkinterface 230 includes the necessary circuitry for such a connection andis constructed for use with the appropriate protocol.

The user device 200 also includes a processing unit 210, a memory 250and may include an optional display 240, all interconnected along withthe network interface 230 via a bus 220. The memory 250 generallycomprises a random access memory (“RAM”), a read only memory (“ROM”),and a permanent mass storage device, such as a disk drive. The memory250 stores program code for an Idea Page User Interface (“IPUI”) 260,Idea Page engine 265, Idea Page database 270 and content handlingapplication 275. In addition, the memory 250 also stores an operatingsystem 255. It will be appreciated that these software components may beloaded from a computer readable medium into memory 250 of the userdevice 200 using a drive mechanism (not shown) associated with acomputer readable medium, such as a floppy disc, tape, DVD/CD-ROM drive,memory card, via the network interface 230 or the like.

Although an exemplary user device 200 has been described that generallyconforms to conventional general purpose computing devices, those ofordinary skill in the art will appreciate that a user device 200 mayinclude any of a great number of devices capable of communicating withthe network 110 and/or with the Idea Page Server 150.

In conceptual terms, an Idea Page can be conceived of as amulti-dimensional visual space of indefinite length and width that couldcapture an arbitrary collection of ideas, concerns, suggestions, issues,reports, queries, plans, projects, initiatives, processes,methodologies, concepts, and other thoughts, all of which arecollectively termed here as “Ideas.”

An “Idea” may be clearly or vaguely expressed; well developed orimprecise; distinct or indistinct; structured or unstructured; mature orpreliminary; organized or disorganized; actionable or conceptual; largeor small; simple or complex; for individual or group use; practical orimpractical.

An example of a clear, well-developed Idea might be “Create MarketingPlan for Board of Directors.”

An example of an imprecise or preliminary Idea might be “vacation plan.”An example of a vague, impractical idea might be “live on Mars.”

Ideas could be expressed using a variety of alphanumeric characters withor without punctuation marks and other grammatical artifacts. An Ideaneed not be expressed in any known human language, be spelled correctly,be grammatically correct, or appear sensible, valuable, relevant orimportant to anyone other than the person who created the Idea.

In some embodiments, Ideas could also be expressed using symbols (e.g.,road signs, flowchart symbols, etc), shapes (e.g., geometric,standardized, etc.) and pictures (e.g., thumbnails, photographs, etc).

Furthermore, in some embodiments, Ideas could symbolize actions;represent or refer to documents, e-mails, bookmarks or other content;represent or reference tasks, issues, questions, plans, processes andmethodologies; represent or reference computer applications (e.g., mediaplayers), databases, networks and other computer hardware or software;represent or reference relationships (e.g., an arrow or line connectingone or more Ideas).

In some embodiments, when displaying Ideas where characters were used toexpress an Idea, the characters could be formatted for display orprinting using methods such use of different fonts, colors, sizes andenhancements (e.g., boldface, underline, italic, etc.) and alignments(left, center, right, etc.). Additionally, Ideas could be organized intolists (e.g., bulleted, numbered, etc.)

If, for example, symbols or shapes were used to express an Idea, thesecould be highlighted or embellished with colors, gradients, patterns,shading, shadow and 3-D graphical effects, flashing or inverse videoeffects, etc.

FIG. 3 shows an example of an Idea Page 300 containing Ideas 310-370expressed as formatted text and graphical symbols.

Individual Ideas could be placed anywhere on an Idea Page, and theycould freely be moved around the Page at any time, and often as desired,by any authorized person. Ideas could be gathered together arbitrarilyon a Page, or they could be arranged within the Page to convey aspecific meaning or intention such as a project plan, proposal orinitiative.

Ideas on the same Idea Page could have any type of relationship betweenthem, and Ideas located on different Idea Pages could have any type ofrelationship between them. Ideas located on the same Idea Page need nothave any defined relationship between them: they could be an arbitrarymix of Ideas that happen to be co-located on the same Page.

FIG. 4 illustrates an example of a “Startup” Idea Page 400 in an IdeaPage compatible application 405 containing several Ideas that have beenorganized to convey a process workflow. This Idea Page 400 contains nineIdeas 410-445, of which four are arrow shapes 415, 425, 435, 445. Inthis example, the Ideas 410-445 are arranged to show Ideas that relateto a startup company. Namely, “Market Research” 410, “Business Model:420, “Financial Plan” 430, “Board Presentation” 440 and “CompetitiveAnalysis” 450 and their interconnecting association Ideas 415, 425, 435,445.

New Ideas could be added to an existing Idea Page and old Ideasmodified, deleted, moved or reorganized at any time by any authorizedperson.

Ideas could be opaque, translucent or fully transparent, and they couldbe placed to overlap or obscure other Ideas on the same Page.

Ideas could be (optionally) linked to other Ideas. For example, an Ideacould be expressed as an arrow shape that connects two other Ideas. FIG.4 shows four examples of arrows linking other ideas that are containedwithin the elliptical shapes.

An Idea, howsoever expressed, is assumed to have intrinsic meaning andvalue to the person who placed it on an Idea Page. An Idea could havemeaning or value on a stand-alone basis, and it could have additionalmeaning or value based upon its proximity or relationship to otherIdeas. For example, an Idea might be expressed as “This is a good plan”;if this Idea is considered in conjunction with another Idea such as“Marketing Plan,” the first Idea could be interpreted as a comment onthe second Idea.

FIG. 5 illustrates several Ideas contained within a singletwo-dimensional Idea Page 500. In this example Idea Page 500:

-   -   “Marketing Plan” 510 is an example of an Idea consisting of two        English words enclosed in a rectangular shape.    -   Arrow 515 is an example of an Idea expressed as a graphical        shape (an arrow). This Idea connects “Marketing Plan” 510 and        “Feasibility Study” 560.    -   “Feasibility Study” 560 is an example of an Idea enclosed in a        three dimension block shape.    -   “Another Idea” 580 is an example of an Idea in plain text,        without any discernible enclosing shape. It is also an example        of an Idea whose meaning and/or value is determined, in part, by        its proximity to “Feasibility Study” 560. “Another Idea” 580        could, in some embodiments, be interpreted as a comment on        “Feasibility Study” 560.    -   “Phone” 570 is an example of an Idea having a seemingly        arbitrary image.    -   “My Idea” 550 is an example of an Idea as a freeform drawing        shape.    -   “Vacation Plans” 540 is an example of an Idea enclosed in an        unusual geometric shape.    -   “Product Specification” 520 is an example of an Idea enclosed in        a flowchart symbol.    -   “Financial Database” 530 is an example of an Idea having a        symbolic shape.

Three-dimensional Idea Pages could be represented on two-dimensionaldisplay and printing devices using perspective or other displayconventions, as illustrated in an example in FIG. 6.

FIG. 6 contains a number of Ideas A-D 610, 620, 630, 640 and connectingarrows 615, 625, 635. Note that some of the arrows and ideas overlap. Insome embodiments, the layering of Ideas upon on other Ideas may conveyadditional information, such a relative importance or temporalinformation.

For example, in FIG. 6, Idea D 640 may have been created more recentlythan arrow 635, which in turn was more recently created than Idea C 630.In other embodiments, layering and/or placement of Ideas could conveyyet other information.

Various Ideas may be “Simple” or “Complex,” where, by definition, aSimple Idea does not contain any other Ideas within it, although it mayhave other objects such as files, bookmarks, e-mails, etc., associatedwith it. A Complex Idea could contain within itself, recursively, otherIdea Pages, each of which may be Simple or Complex, as well as haveother objects associated with it.

FIG. 7 illustrates an example where the “Business Model” 420 and“Financial Plan” 430 Ideas that were originally illustrated in FIG. 4are assumed to be Complex Ideas, and their contents are shown overlayingthe original Idea Page 400 from FIG. 4.

In addition to the “Startup” Idea page 400, FIG. 7 contains the explodedviews of “Business Model” 420 and “Financial Plan” 430. The “BusinessModel” Idea Page 400 contains “Sales Model” 750, “Sales Forecast” 710,“Operating Model” 770 and “Cost Forecast” 720 Ideas along withconnecting arrow Ideas 755 and 765.

The “Financial Plan” 430 Idea Page contains “Budget Forecast” Idea 730and connecting arrow Ideas 715 and 725. “Financial Plan” 430 Idea Pagealso contains “Sales Forecast” 710, and “Cost Forecast” 720 Ideas. TheseIdeas have “Business Model” 420 and “Financial Plan” 430 as parents.

Any Idea, whether Simple or Complex, could exist on more than one IdeaPage. In the example illustrated in FIG. 7, the “Sales Forecast” 710 and“Cost Forecast” 720 Ideas are shown existing simultaneously in the“Financial Plan” 430 and the “Business Model” 420 Idea Pages. The “SalesForecast” 710 and “Cost Forecast” 720 Ideas are said to have two parentseach, namely the “Financial Plan” 430 and the “Business Model” 420 IdeaPages.

When the same Idea or Ideas exists in more than one Idea Page, each IdeaPage could represent a different, independent context or arrangement ofthe shared Ideas. Thus, in the example illustrated in FIG. 7, the “SalesForecast” 710 Idea could appear in the “Business Model” 420 Idea Page aspart of a process workflow involving the “Sales Model” 750 and“Operating Model” 770 Ideas; and it could also appear in the “FinancialPlan” Idea Page 430 as part of a different, possibly entirely unrelated,context or process workflow that involves the “Budget Forecast” Idea730.

Whenever a user re-uses an Idea across multiple Idea Pages, the system100 could keep track of all these Idea Pages and allow the user to know,at a glance, whether a particular Idea exists in more than one context(i.e., Idea Page). FIG. 8 illustrates this concept with an example: IdeaX 860 appears on Idea Page D 840 and Idea Page E 850. Similarly, IdeaPage E 850 appears on Idea Page B 820 and Idea Page C 830. Likewise,Idea Page D 840 appears on Idea Page A 810.

Every Idea has as many parents as the number of Idea Pages in which itexists; this implies that every Idea has at least one parent, sinceevery Idea exists on at least one Idea Page. (Note: an Idea that hasbeen deleted by the user may still remain in the system's data store,for example, it may be located in the system's Trash or Recycle Binawaiting final disposal. In such circumstances, even the deleted Ideahas a parent—the Trash or Recycle Bin (which may themselves beIdeas/idea Pages)—and this remains true until the Idea is finallyremoved altogether from the system 100.)

The chain of parents and ancestors may be known as “Back Links.” TheIdea Page system 100 could track, and display upon request, the BackLinks of any Idea. If an Idea, or any its ancestor Idea Pages, hasmultiple parents, the IPUI 260 could show the various Back Link pathsthat exist. In the example illustrated in FIG. 8, the Back Links for“Idea X” 860 could include Idea Pages A-E 810-850.

In exemplary embodiments, each individual user is the root or ancestorof all Ideas and Idea Pages that he/she creates, and for every user,there is a so-called “Home Page” that acts as the top-level root of allIdeas that he/she creates. This is analogous to a disk drive of acomputer acting as the root of the computer's file system.

In some embodiments, a user could have multiple, independent Home Pages:for example, a Personal Home Page that acts as the root of his/herpersonal activities and ideas, and a separate Work Home Page that actsas the root of his/her professional activities and ideas.

An Idea that exists in an Idea Page spawned by one Home Page could alsoexist in an Idea Page spawned by a different Home Page; this differentHome Page could, potentially, be that of a different user of the system100, even if the other user is not part of the same organization,located on the same computer network, or using a similar computer oroperating system.

The user could associate a variety of digital content, tasks, issues,questions, meetings, actions, etc. around his/her Ideas and Idea Pages,organized in static or dynamic lists. All such items are referred to as“Associated Objects.”

Digital content that is associated with an Idea or Idea Page could bestatic or dynamic. Examples of static content might include:

-   -   A file, such as a presentation, spreadsheet or memorandum.    -   An audio or video file.    -   A Web bookmark (i.e., a Uniform Resource Indicator or URI; also        sometimes known as a Uniform Resource Locator or URL).    -   An e-mail.

Examples of dynamic content might include:

-   -   A Structured Query Language (“SQL”) or other database or data        store query that yields a different collection of files or data        items each time the query is invoked or resolved.    -   A connection to a real-time system such as a statistics or usage        tracking system.    -   A real-time data feed, such as a feed of stock market prices.

The Idea Page system 100 could support several mechanisms forassociating digital content items with an Idea or Idea Page. Examples ofsuch mechanisms might be:

-   -   Providing functions (e.g., buttons, dialog boxes, etc.) embedded        within the IPUI 260 that allows the user to find a particular        content item either by direct entry of a reference to the        content item (e.g., a file name), by browsing through data        stores of content (e.g., file or e-mail folders, and the like),        or by executing queries to databases and real-time sources of        data.    -   Allowing the user to drag a digital content item from the        computer or electronic device's desktop, file system viewer or        an external or third party application (e.g., e-mail client, Web        browser, etc.) that supports drag-and-drop operations.    -   Allowing the user to drag indirect references to content, such        as a URI or URL that is embedded within a content piece, or        content items that are referenced or made addressable using meta        tags or similar mechanisms, or search results from a desktop,        Web based or other search engine (e.g., from Google, Inc. of        Mountain View, Calif.; Microsoft Corporation of Redmond, Wash.).    -   Incorporating functions or buttons within external or third        party applications software (e.g., Microsoft Word or Microsoft        Excel from Microsoft Corporation, etc.) that support plug-ins        and extensions. An example might be adding a button to Microsoft        Word that automatically associates a particular document with an        Idea or Idea Page.    -   Supporting rules-based importing of digital content items, in        batch, continuous mode or real-time modes. Examples might be a        system function that automatically finds and associates digital        content items, such as all music associated with a particular        performer, using wildcards of their file names, or a system        function that automatically finds and associates files based        upon their contents, e.g. by doing a search for a particular        text string, keyword, or meta-tag.

In some embodiments, the Idea Page system 100 could support multipleways of managing the associations between content items and Ideas/ideaPages. One mechanism could be to maintain a symbolic link to a contentitem that is directly accessible, while another mechanism could be forthe system 100 to maintain a private copy of the content item, which ituses for its own purposes. Using symbolic links may offer an advantagein not creating additional storage overhead through duplication ofcontent items, while using private copies may offer an advantage in, atleast partially, insulating the system's performance and integrity fromactions taken external to the system 100, such as a user or programunexpectedly deleting or modifying a content item of interest.

Examples of the use of symbolic links could include:

-   -   Files available on the computer's file system or accessible        through connected computers and disk drives through a LAN, WAN,        VPN, Intranet, Extranet or the Internet.    -   E-mails stored as individual files.    -   E-mails stored in a proprietary format (e.g., Microsoft        Corporation's Microsoft Outlook PST format) could also be        managed as symbolic links if the e-mail vendor provides a        published Application Programmer Interface (“API”).

Examples of the use of private copies could include:

-   -   Web bookmarks (“URIs” or “URLs”) can be treated as symbolic        links, and therefore the system 100 could keep a private copy of        URLs.    -   Database queries, expressed in industry-standard languages like        SQL or in proprietary query languages or scripts, can also be        treated as symbolic links and therefore the system 100 could        keep a private copy of selected database queries.    -   Individual files could be copied into a private storage area in        order to provide document management capabilities, as outlined        below.

The Idea Page system 100 could allow the user to determine whether anyindividual content item, or a class of content items (e.g., all e-mails,all URLs, etc.), are associated with Ideas or Idea Pages using symboliclinks or by making private copies; alternatively, such decisions couldbe vested within a set of defined users who are termed “administrators”of the system 100, and who are provided with supervisory or managementprivileges with respect to a defined community of users.

Other types of Associated Objects might include: tasks, open issues,questions, meetings, people, constraints, budgets, timekeeping records,activity statistics, etc. These could be organized in lists, and eachIdea or Idea Page could have several, potentially overlapping listsassociated with it.

Items in such lists could be entered directly by the user (e.g., bytyping or scanning in a description of the item, etc.); they could beimported from other external or third-party applications (e.g., byimporting a list of meetings from a calendar application, etc.); or theycould be generated by the system 100 itself (e.g., a list of updatesmade by users to a particular Idea, etc.).

When the user selects an Idea or an Idea Page, the IPUI 260 couldautomatically show all its Associated Objects. There are several waysthe system 100 could provide this facility, depending upon the computeror electronic device employed by the user to access the system 100.

Lists of Associated Objects could be managed as threads or structuredoutlines. An example is shown in FIG. 9, which deals with a set of tasks950 that are associated with a specific Idea 900.

In the example illustrated in FIG. 9, “Reschedule follow-up meeting” 910is indented within “Schedule follow-up meeting with consultants” 905,thereby indicating the former is a subordinate or follow-up item to thelatter, which in turn is indented within “Review proposal withconsultants” 901.

The outline structure of such lists could be managed and manipulated byallowing the user to promote or demote subordinate or follow-up:promoting an item could result in it being moved one position over tothe left in the indenting schema shown in the example from FIG. 9, whiledemoting an item could result in it being moved one position over to theright. An example is illustrated in FIG. 10 where the item “Reschedulefollow-up meeting” 910 has been promoted.

The concept of follow-up or subordinated items within structuredoutlines has been illustrated using an indented representation in theexamples shown in FIG. 9 and FIG. 10; however, the IPUI 260 could adoptother styles and representations.

An Associated Object could be linked to multiple Ideas or Idea Pages:for example, the user could select an object associated with oneparticular Idea or Idea Page and then copy and paste (or Drag and Drop)this Associated Object so that it is associated with another Idea orIdea Page. Whenever an Associated Object is associated with more thanone Idea or Idea Page, the system 100 could track all such associationsand, optionally, provide an indicator to the user that a particularAssociated Object has multiple parents.

The IPUI 260 could allow the user to select and “launch” an item(Associated Object) from a list of content associated with a particularIdea, if the user's computer or other electronic device has installedlocally, or provides remote access to, the content-handling application275 associated with the selected content item. For example, the IPUI 260could permit the user to double-click with his/her mouse or otherpointing device on a spreadsheet file within a content listing, andthereby launch a spreadsheet program such as Microsoft Corporation'sMicrosoft Excel if the user's current computer or other electronicdevice has Microsoft Excel installed locally or is configured to providethe user with remote access to this application software.

The content-handling application 275 could also, optionally, beintegrated into the IPUI 260 itself: for example, the IPUI 260 couldhave embedded functionality that allows it to display files that use thePortable Document Format (“PDF”); in such cases, the PDF display couldbe within the confines of the IPUI 260 itself, rather than by means ofan external application such as Adobe System Incorporated's (of SanJose, Calif.) Adobe Reader. Other examples might include the display ofHyper-Text Markup Language (“HTML”) pages using an embedded browser ordisplay of e-mail messages using an embedded e-mail client.

The IPUI 260 could allow the user to add a series of Notes to any Idea,Idea Page or Associated Object (known collectively as “Items”), where aNote could consist of a sequence of alphanumeric characters, graphics,audio and/or video. A Note could be of any size, in any language, and itoptionally could be organized as sentences, paragraphs or pages of text.

Notes could be added by any authorized person with the appropriatepermissions needed to modify the Item in question. The Notes need notmodify the Item itself: for example, a Note that is added to aspreadsheet file need not appear in the spreadsheet itself. The system100 could separately keep track of which Notes are attached to whichItems. Whenever the IPUI 260 presents an Item to the user, all Notesthat are attached to the Item could also be made available.

Ideas, Idea Pages and Associated Objects, known collectively as “Items,”could have attributes, associated values or properties that are setmanually by authorized persons, or automatically by the system 100.Examples of such values or attributes that may be helpful in projectplanning and management could include Priority, Completion Status, DueDate, Owner, etc. For example, a person could manually set the Priorityof an Idea to High; the system 100 could automatically set theCompletion Status of an Idea to Late or Due Soon based upon the currentdate and the Due Date, if specified, of the Idea.

Attributes of Ideas on the same Idea Page or other Idea Pages couldaffect each other. For example, two Ideas on the same or different IdeaPages could have a relationship defined between them such that if oneIdea's Priority attribute value is set to High, the Priority of theother Idea is also automatically set to High. Where Associated Objectsare organized in threaded lists, follow-up or subordinated items couldhave attribute settings that are independent of their parent items.

In some embodiments, Items have at least one Owner, which might be theuser that first created, or imported, the Item into the system 100.Ownership of Items could be shared by several authorized users of thesystem 100 and ownership could be transferred from the original Owner toa new Owner, permanently or temporarily.

The Owner(s) of an Item could determine which other users (known as“Recipients”) have access to the Item by creating an Access Control List(“ACL”) for the item. An ACL could specify the Recipients of an Item,and the specific permission granted to each Recipient, thereby enablingusers to individually or collectively develop and transform ideas intoprojects, create and execute project plans, create communities ofinterest and communities of purpose, explore ideas and issues, andcreate, maintain and manage distributed project teams. Examples ofpermissions could include:

-   -   Ability to detect the presence or existence of an Item.    -   Ability to find the Item by searching through the system 100.    -   Ability to view the Item: its contents, attributes or display        properties.    -   Ability to modify the Item: its contents, attributes or display        properties.    -   Ability to attach new Items, such as adding new tasks to an Idea        or adding a note to a task.    -   Ability to delete the Item.    -   Ability to create new Ideas that are contained within the        original Idea, such as transforming a Simple Idea to a Complex        Idea, or extending an existing Complex Idea.    -   Ability to modify the ACL of the Item, such as adding new        Recipients to the ACL, or to changing the permissions of any        Recipient who is already on the ACL.

For Complex Ideas, these permissions could be restricted to just theparent Idea, or to some or all of the contained Ideas. Permissions couldbe inherited by Recipients: e.g. if a Recipient has a specified accessto a Complex Idea, he/she could gain the same access to any new Ideasthat are created within that Complex Idea. However, the system 100 couldalso be configured to require explicit authorization for every Recipientat every level of a Complex Idea.

The system could permit the Owner(s) of Items to set these permissionsat any level of granularity and/or it could permit the user to createbundles of permissions that correspond to roles within a team or othernatural categories and groupings of Recipients. For example, an Ownercould create bundles of permissions that are presented as project teamroles whereby a Recipient could have one of the following roles:

-   -   “Observers,” who could detect the presence of an Item, find the        Item and view the Item.    -   “Team Members,” who have all the permissions of Observers, and        in addition could modify an Item, attach new Items, and expand a        Simple Idea into a Complex Idea.    -   “Team Leaders,” who have all the permissions of Team Members,        and in addition could delete an Item and modify the ACL of the        Item.

The system 100 could support any variety or combination of these orother roles.

Each Item has an original “context,” which is defined as the originalIdea or Idea Page where the Item was first created. Thereafter, the Itemcould be moved to other Ideas or Idea Pages, as well as shared by otherIdeas and Idea Pages, in which case the Item would exist in severaldifferent contexts.

If an Item has one or more Recipients, each Recipient could be permittedto place his/her copy or version of the Item in new contexts that theycreate and manage. Placing an Item in new contexts, or sharing the Itemwith one or more Recipients, need not inherently or automatically modifythe original Item. An example is illustrated in FIG. 11, which depictsthe hypothetical “startup” Idea Page 400 on a Canvas 1100 that containsa total of 9 Ideas:

(1) “Market Research” 410;

(2) “Competitive Analysis” 450;

(3) “Business Model” 420;

(4) “Financial Model” 430;

(5) “Board Presentation” 440;

(6) Arrow linking “Market Research” and “Business Model” 415;

(7) Arrow linking “Competitive Analysis” and “Business Model” 445;

(8) Arrow linking “Business Model” and “Financial Plan” 425; and

(9) Arrow linking “Financial Plan” and “Board Presentation” 435.

FIG. 11 illustrates an exemplary Idea Page where the “CompetitiveAnalysis” Idea has a document (Associated Object) attached to it called“Doc X” 110 and the “Startup” Idea Page 400 has a document attached toit called “Doc Y” 1120. Note, that the arrows connecting to theAssociated Objects 1110, 1120 are not necessarily Ideas. In someembodiments, Associated Objects may simply be owned by or associatedwith an Idea. Of course, in some other embodiments, Ideas are notnecessarily associated with other Ideas by way of arrow Ideas either.

There are several ways in which the Owner of this hypothetical Idea Page(say, “User A”) could share these Items with other users:

-   -   User A could share the entire Idea Page: all nine Ideas 410-450        and the two documents 110-1120, where each Item has a different        ACL.    -   User A could share just some of the Ideas, but not the        documents.    -   User A could share one or both documents, but not any of the        Ideas.

In a scenario whereby User A adds User B to the ACLs of “CompetitiveAnalysis” 450, “Doc X” 1110 and “Business Model” 420 (and theirconnecting arrow 425), User B would get partial access to the “Startup”Idea Page 400, as illustrated in FIG. 12. As FIG. 12 shows, User B'sview of the “Startup” Idea Page 400 could be restricted to only thoseItems where he/she is on the ACL: User B might have no inkling that anyother Items even exist on the Startup Idea Page 400.

Simultaneously, User A could share some of these Items with yet anotheruser: User C, for example. This is illustrated in FIG. 13, where User Cis given access to “Market Research” 410, “Competitive Analysis” 450 and“Doc Y” 1120.

In some embodiments, when a user becomes a Recipient of an Item for thefirst time, there may be no natural or obvious context from theperspective of the Recipient wherein this Item should be placed. One wayin which the IPUI 260 could handle this issue is by creating a SystemInbox (not shown) that is analogous to the Inbox folder availablethrough most e-mail clients.

The System Inbox could be implemented as an Idea Page, or as a simplelist. Items could stay in the System Inbox until they are moved to otherIdea Pages by their Recipients. The Recipient does not have to moveItems from his/her Inbox in order to deal with them. As these Items areupdated by their Owner(s) or by other Recipients, the system 100 willprovide updated copies of the Items to the System Inbox.

When a Recipient receives an Item from its Owner(s), the IPUI 260 couldprovide graphical and display information (e.g., the shape and color ofan Idea) along with all other relevant control information and data.

When a user becomes a Recipient of a set of related Items, e.g. a numberof Ideas and Associated Objects that are related to the same Idea Page,the IPUI 260 could provide a consolidated view of these related Items.For example, by including the Ideas within a parent context.

Additionally, it may be possible for users to create filters orprocessing rules that could automatically process new Items that theyreceive based upon criteria such as the identity of the Owner, the titleof the Item, etc. This could be analogous to creating e-mail filtersthat automatically file new incoming e-mails in specified folders.

It could be possible for an Owner to share an Associated Object, such asa document, without sharing the Idea or Idea Page to which the documentis attached.

The Owner could, at any time and as often as desired, add new users tothe ACL of any Item, remove users, or modify permissions of individualusers. In the example illustrated in FIG. 12, for example, the owner ofthe “Startup” Idea Page might decide subsequently to make User B aRecipient of the “Market Research” 410 Idea as well (not shown).

Where two Idea shapes (e.g., an ellipse and a rectangle) are linked bymeans of a third Idea shape (e.g., an arrow), the links are normallypreserved in the process of sharing Ideas between Owners and Recipients.Since the links themselves are Ideas, it could be possible for aRecipient with appropriate permissions to create new links betweenshared Ideas, or to modify or remove existing links. In the exampleillustrated in FIG. 13, User B could be permitted to create new Ideas onthe “Startup” Idea Page 400 and link these new Ideas to the ones thathe/she received from the original Owner(s) of the Page. This isillustrated in FIG. 15, where User B has created a new Idea called “WebResearch” 1410 that he/she has linked (via Idea 1405) to “CompetitiveAnalysis” 450.

When a user who is a Recipient of an Idea links this Idea to new Ideasof his/her own, he/she need not share these new Ideas with the Owner(s)of the original Idea. In the example illustrated in FIG. 15, if User Bcreates the “Web Research” Idea 1410 on his/her copy or view of the“Startup” Idea Page 400, he/she need not be required to make this “WebResearch” Idea 1410 available to the original Owner(s) of the “Startup”Idea Page, or to any other Recipients of the “Startup” Idea Page. Itcould be possible for User B to create the “Web Research” Idea 1410 as apurely private Idea—i.e. one that is only accessible to User B. This istermed a “private extension to a shared Idea Page.”

Private extensions to shared Idea Pages could provide privacy forproject team members, by enabling them to view a shared set of Ideas(e.g., a common project or initiative) in a personalized way. Recipientswith appropriate permissions need not be restricted to a single view ofany Idea or Idea Page—instead, they could extend and expand these Ideasindependently of the manner in which the shared Ideas are viewed ormodified by the original Owner(s) or other Recipients.

A Recipient with limited rights (e.g., one with only an Observer role inthe project) may not be able to create any private extensions to theshared Idea Page: he/she may be restricted to the view that is generatedby the Owner(s) of the Page, or by other Recipients of the Page who havemore permissive rights to the Page.

Recipients could also repurpose Items provided to them by other users,by linking these Items to other Idea Pages created by the Recipients.This could be done, for example, by copying the Items from the SystemInbox, or wherever else the Items currently exist, and pasting them ontonew Idea Pages created by the Recipients. This is illustrated in FIG.15, which takes up the example shown in FIG. 13 where User C gainsaccess to the “Market Research” Idea 410 as part of a set of Itemsrelated to the “Startup” Idea Page 400 for which he/she became aRecipient. FIG. 16 illustrates a scenario wherein User C repurposes the“Market Research” Idea 410 in a new Idea Page called “R&D” 1500 thathe/she has created. The example “R&D” Idea Page 1500 also contains the“Consultant Reports” 1550 and “Market Models” 1520 Ideas, along witharrow Ideas 1545 and 1515.

The IPUI 260 (in conjunction with other elements, such as the Idea PageEngine 265) could automatically synchronize changes to the shared Items,where such changes were made manually or automatically by the Owner(s)and/or Recipients, and where such changes were made automatically by thesystem 100 itself. An example of a change made by the system 100 itselfmight be to mark an Item as “Late”, if a Due Date attribute for the Itemhas passed without the Item being marked as Complete by the Owner(s) orRecipients.

Normally the ACL for an Item might include only those people who haveaccess to the system 100, so that these Recipients might access,manipulate or manage shared Items. However, it could be possible toconfigure the system 100 such that the ACL includes people withoutaccess to (or outside) the system 100. There are several ways in whichpeople or even systems (hardware or software) could be configured to actas so-called “Passive Recipients” to an Item, even when these people orsystems are not in a position to directly access, manipulate or managethe Item.

For example, a person who is not an authorized user of the system 100,but is nevertheless part of the ACL of an Item, could be automaticallysent updates to the Item by the system whenever the Item is changed byits Owner(s) or Recipients. The updates could be sent through a varietyof electronic mechanisms, such as fax, e-mail, etc., and in a variety offormats and forms such as by creating a HTML or graphic image of a Page,etc.

In another example, an external or third-party software or hardwaresystem (e.g., a database, a Web site etc.) could also be set up as aPassive Recipient for any Item. These external systems could receiveupdates to Items sent in a variety of proprietary or industry-standardformats. One example might be to allow users of the system toautomatically update a Web site with updates of their Ideas, Idea Pagesand Associated Objects, so that they can publish their work updates toan Intranet, Extranet or the Internet.

When a shared Item is modified or updated, the system 100 couldautomatically send a notification to all users on the Item's ACL. Thenotifications could, optionally, be segregated by the user so that allupdates to Idea Pages, for example, are listed together; all updates tocontent items are listed together, etc.

One exemplary implementation of the system 100 described above could befor use on a computer with a mouse or other pointing device, for examplea personal computer running Microsoft Corporation's Microsoft Windowsoperating system or the open-source Linux operating system, in whichcase the system could have a GUI (e.g., IPUI 260) similar to thatillustrated in FIG. 16.

The example GUI illustrated in FIG. 16 could include the following majorcomponents:

Menu Bar: The Menu Bar 1605 could contain common application functions,organized into groups of drop-down menus such as:

-   -   File 1610: this group could include functions for creating and        saving templates, for creating and saving archives of Idea        Pages, opening or closing a particular Idea Page, printing Idea        Pages, accessing a list of recently-used Idea Pages, etc.    -   Edit 1615: this group could include functions for cutting or        copying an Item, deleting an Item, pasting an Item, undoing        recent actions, redoing recent actions, creating filtered views        of the Workspace or the Details Sidebar, etc.    -   View 1620: this group could contain functions such as creating        filtered views in the Workspace (e.g., “show most frequently        updated Idea Pages”, etc.) or the Details Sidebar (e.g., “show        only spreadsheets related to this Idea”, etc.)    -   Format 1625: this group could include functions for formatting        Items such as setting their display properties (e.g., colors,        fonts, etc.).    -   Tools 1630: this group could include functions for searching for        particular Items, checking spelling or grammar, managing        relationships with other users, managing or overseeing usage of        the system 100 (e.g., statistics, bandwidth consumption, etc.),        managing security (e.g., encryption, authentication, etc.),        customizing the “look and feel” of the system 100, managing        versions of Items, etc.    -   Help 1635: this group could contain functions for accessing help        on individual features of the system 100, proving an overall        introduction to the system 100, tutorials, knowledge bases, etc.

Various other combinations of functions could be created to accommodatedifferent user interface or operating system standards and guidelines,or to accommodate different market or user requirements.

The GUI could also contain other components, such as the canvas 1600,Idea Pages 1660, 1670 and a Sidebar 1650.

Optionally, the GUI might also contain a “Tool Bar” (not shown). TheTool Bar could contain buttons, with or without accompanying labels, andwith or without accompanying pop-up text commonly known as “tooltips”,for functions such as:

Navigation: navigating between a set of linked Idea Pages could be madesimilar to navigating Web pages using a browser, by modeling the GUI'snavigation function on that of a Web browser with “Back”, “Forward” and“Home” buttons.

Creating new Ideas and Idea Pages: the Tool Bar could contain buttonsfor creating new Ideas, which could be enclosed in a variety of shapes(e.g., rectangles, ellipses, etc.); freehand drawings created using amouse, tablet or other pointing device; scanned images; images importedfrom internal or external or third-party libraries of graphical images;etc. These buttons could also include functions that draw a variety oflines (e.g., straight, curved, etc.).

Formatting existing Ideas and Idea Pages: the Tool Bar could containbuttons that enable the user to modify the appearance of an Idea or IdeaPage, such as by manipulating font size, font color, etc. These buttonscould bring up dialog boxes or other interactive displays that enablethe user to change the appearance of an Idea or Idea Page, as well asapply formatting styles using templates or other standards.

Editing operations: the Tool Bar could include buttons that supportdeleting, copying, cutting or pasting items from the Workspace or theDetails Sidebar.

Other operations: the Tool Bar could include a variety of other buttonsthat map, for example, onto functions that are also available from theMenu Bar, such as creating or opening a template.

Workspace: the Workspace (Canvas) 1600 could be the main display areafor the IPUI 260. It could provide one or more scrollable canvases forusers to create, manipulate, view and manage their Ideas and Idea Pages.Using drawing tools available from the Tool Bar (as described above),the user could place Ideas on the Workspace canvases. The followingexample, based upon a scenario where the user has access to a computerwith a monitor and mouse or other pointing device, illustrates theprocess by which a user could create an Idea Page similar to the onedepicted in FIG. 4.

The user could select an ellipse shape from the Tool Bar using his/hermouse or other pointing device. The cursor displayed on the screen couldchange to confirm the user's selection of the ellipse shape by, forexample, changing to an ellipse-shaped cursor.

Using this cursor, the user could click somewhere on a canvas to createa shape on the canvas corresponding to the shape selected by the userfrom the Tool Bar (i.e., an ellipse, in this example). The user couldthen begin to type in any set of characters to capture his/her Idea. Forexample, the user could type in “Market Research” as the first Idea onthe canvas in order to create an Idea Page similar to the one depictedin FIG. 4.

Similarly, the user could place additional shapes on a canvas, eachcontaining a separate Idea (i.e., “Competitive Analysis”, “BusinessModel”, etc., as in the example illustrated in FIG. 4). This processcould include selecting a line drawing tool from the Tool Bar to drawlines connecting the ellipses on the canvas, and the process couldcontinue until the Idea Page looks like the one depicted in FIG. 4. Thelines themselves could be treated as Ideas by the system 100, or merelyas graphical artifacts that connect shapes on the canvas.

Having created the basic framework of Ideas, the user could then formatan Idea Page by, for example, adjusting the color, style and thicknessof the lines connecting the various shapes. This could be done usingtools from the Tool Bar or by selecting one or more items on the IdeaPage and then apply the appropriate command from the Format menu on theMenu Bar.

The user could also grab an Idea on an Idea Page, using a mouse or otherpointing device, and move it about on the scrollable canvas in order tomanage the overall appearance and layout of the Idea Page, or move itonto another canvas in order to effect a cut-and-paste of an Idea fromone Idea Page to another. Similarly the user could employ a combinationof keyboard and/or mouse actions, such as simultaneously using the Ctrlkey and a mouse action for example, to copy an Idea from one Idea Pageto another.

The next step for the user might be to organize some content aroundthese Ideas. One such scenario might be for the user to find Web pagesof interest to one or more of the Ideas on the Idea Page and then tolink these pages to the Ideas. This could be done in a variety of ways:if the user's computer operating system and Web browser supportdrag-and-drop interactions between applications, the user could drag Weblinks (URLs) and drop them over or onto one of the Ideas the canvas, andthis could signal the system 100 to maintain a symbolic link between theselected Idea and the selected URL. Alternatively, the IPUI 260 couldpresent an input window or other interactive dialog that allows the userto specify the path name of a file, a URL, an e-mail, a database query,or a query or invocation of any external system containing any mix ofstatic or dynamic data.

If individual e-mails are not easily accessible as individual files, thesystem 100 could incorporate a programmatic interface to one or moreexternal or third-party e-mail clients, using industry-standardprotocols and methods or proprietary API interfaces.

The process of associating content items with Ideas could be repeated asoften as desired by the user, at any time during the existence of theIdea Page.

Similarly, the IPUI 260 could provide an input window or otherinteractive dialog that enables the user to create lists of tasks,issues, queries, meetings, work assignments, etc. that are associatedwith one or more Ideas or Idea Pages. For example, the IPUI 260 couldenable the user to select one or more Ideas and/or Idea Pages and thenpresent an input window or dialog box which enables the user to manuallytype in a task; this process could then associate the task with theselected Ideas and/or Idea Pages.

Similarly, the IPUI 260 could provide an input window or otherinteractive dialog that enables the user to create lists of people thatare associated with one or more Ideas or Idea Pages. For example, theIPUI 260 could enable the user to select one or more Ideas and/or IdeaPages and then present an input window or dialog box which enables theuser to manually type in another user's name or other identifyinginformation; this process could then associate the person with theselected Ideas and/or Idea Pages.

When a person is associated with an Idea or Idea Page, this personbecomes a Recipient of that Idea or Idea Page. The IPUI 260 couldpresent an interactive dialog, for example, that enables the user todetermine the specific access permissions and rights that a particularRecipient is to have with respect to a particular Idea or Idea Page.This dialog could, for example, allow the user to see at a glance allthe Recipients that exist for a particular Idea or Idea Page, as well asview and/or change each Recipient's permissions or roles with respect tothe Idea or Idea Page.

If the user wished to elaborate upon any of the Ideas on an Idea Page,i.e. transform a Simple Idea to a Complex one, he/she could select theIdea in question and create a new scrollable canvas that represents thecontents of the Idea.

This could be accomplished in several ways. If, for example, the user isaccessing the system 100 with a computer and a pointing device such as amouse, he/she could double-click an Idea currently displayed in aWorkspace canvas using the mouse. Another mechanism could be for theuser to select an Idea and then create a new canvas for this Idea byselecting an appropriate command from the “File” menu in the Menu Bar.

This second canvas could partially or entirely overlap the first canvas,or it could replace the first canvas so that the Workspace shows onlythe new canvas, or the Workspace could show simultaneously show bothcanvases as in the example illustrated in FIG. 7. Other alternativedisplay schemes are possible, such as allowing the user tosimultaneously access a number of different canvases and/or a number ofdisplays 240.

When Complex Ideas are shown on a Workspace canvas, they could,optionally, have an icon, indicator, highlighting or other graphicalartifact or styling applied or attached to it by the IPUI 260; thiscould help the user understand at a glance which Ideas, if any, on anIdea Page are Complex.

The user could select an Idea and cut or make a copy of it for use onanother Idea Page using the Edit menu group from the Menu Bar 1605.

The top of a Workspace canvas could display the “Back Links” for theIdea or Idea Page that is currently selected in the canvas. For example,when viewing the “Business Model” Idea Page 420 illustrated in FIG. 7, aportion of the canvas 700 could display the following sequence (notshown), assuming the original set of Ideas was placed directly onto theuser's Home Page: “Home>Business Model.”

To continue this example, if the original set of Ideas had been placedwithin a Complex Idea called “Startup Plans” (not shown) located on theuser's Home Page, the Back Links shown when the user is viewing the“Business Model” Idea Page could display the following sequence instead:“Home>Startup Plans>Business Model.”

The Back Links could be displayed in other ways as well, e.g. withgreater use of graphical artifacts, and the Back Links could be placedelsewhere within the Workspace or on any other window or display areawithin the IPUI 260.

Details Sidebar: The Details Sidebar 1650 could be organized so as tocontain within it several Panes 1710-1730 or “mini-windows” asillustrated in FIG. 17. These Panes 1710-1730 could be used to managelists of Associated Objects, organized into separate groups such as allcontent items (in a Content Pane 1710), all tasks (in a Task Pane 1720),all people (in a People Pane 1730), etc. The IPUI 260 could provideseveral such Panes, each containing a separate type of AssociatedObject.

Alternately, Associated Objects could be gathered together in a singlePane 1810 as shown in FIG. 18. Likewise, a user could determine whichselection or combination of Panes is displayed at any time.

If separate Panes were used for each type of Associated Object, theDetails Sidebar could be organized as illustrated in FIG. 17, whichshows the use of a “Content Pane” 1710, a “Task Pane” 1720 and a “PeoplePane” 1730. (It should be noted that these three Panes are merelyillustrative of the kinds of Panes that could be established within theDetails Sidebar; they do not imply that only three Panes are possible,or that other types of Panes are not possible.)

The display of lists of Associated Objects within each Pane could becoordinated with the display of Idea Pages within a Workspace canvas asfollows: when the user selects an Idea from one of the Workspacecanvases, the Panes could filter their views to automatically show onlythose items that are associated with the selected Idea.

If several Ideas are selected simultaneously in one or more canvases,the Panes could filter their views to automatically show the items thatare collectively associated with the selected Ideas. Alternatively, ifthe Idea Page itself could be selected and the Panes could show theitems that are associated with the Idea Page itself. In the exampleillustrated in FIG. 18, the “Market Research” Idea 410 has beenselected.

Alternately, each Pane could include two lists: one showing the itemsthat are associated with the currently selected Ideas on a particularIdea Page, and the other showing items that are associated with theremaining Ideas on the Page, and the Page itself. An example isillustrated in FIG. 18, where one Idea (“Market Research” 410 in thisexample) has been selected; the Content Pane 1810 shows two lists: oneof content items that are associated with the selected Idea 1820, andthe other of items that are associated with the other eight Ideas onthis Page, and the Page itself 1830.

If any of the currently selected Ideas is Complex, the IPUI 260 could,optionally, show all Associated Objects that are associated with allIdeas contained within the selected Complex Ideas in a so-called“roll-up” view (not shown).

The IPUI 260 could enable the user to select an Item and add one or moreNotes (not shown) to it. This could be made possible in several ways,such as enabling the user to select an Item and providing an inputwindow or interactive dialog which allows the user to enter a Note. ThisNote could be entered manually, or the Note could consist of otherdigital material such as a voice-capture, scanned image, imported file,etc.

The IPUI 260 could enable the user to select any Item from a Workspacecanvas or the Details Sidebar, and use a querying function (not shown),which could, for example, be an interactive dialog, to view, create,manage or update other attributes of the selected Item, such as its DueDate, Priority, etc.

The side-by-side arrangement of the Workspace and Details Sidebar, asillustrated in FIG. 18, could be modified by the user to any otherarrangement, such as placing one area above the other, partiallyoverlapping them, placing them as tiled panes within the same window,placing them in completely separate windows, etc.

It could be possible for the user to create other filtered views ofAssociated Objects: e.g. showing only e-mails; showing only CompletedTasks, etc. The display of these lists in separate windows need notrequire the viewing area to be simultaneously available or visible.

The user's choice to show some set of lists for a particular Idea on aparticular Idea Page (e.g., content, tasks and people related to the“Market Research” Idea 410 in the example shown in FIG. 17), need notimply that all similar or related Ideas, or all Ideas on the same,similar or related Idea Pages, have to support or display the same setof lists. It could be possible for the user to have tasks associatedwith just some Ideas on an Idea Page and not with other Ideas on thesame Page.

If the user device 200 is a Personal Digital (Data) Assistant (“PDA”),mobile phone, or other device of limited screen resolution and displaysize, the system 100 could provide an alternate display, as illustratedin an example in FIG. 19. In this example, instead of showing the Ideas410-450 laid out in the same way as in FIG. 19, the viewing area 1900shows only a simple listing of the Ideas 1915 contained within aselected Idea Page 1912 of Pane 1910. The various Panes 1920, 1930, 1940that comprise the Details Sidebar could be shown below the Pane withlisting of the Ideas 1910, and the overall schema could be subject to avertical and/or horizontal scrolling function so that only a limitedportion of the overall display is made visible at any time.

In some embodiments, a Pane within the Details Sidebar could beconfigured to show structured outlines as indented lists. For example,the “Task Pane” 1720, as illustrated in FIG. 17, could show sub-tasksusing an indented structure, as illustrated in the example Pane 2010 inFIG. 20. Such schemas could be used to display and manage workbreak-down structures or other structured outlines of Items. Forexample, the IPUI 260 could enable the user to select an item from alist within a Pane and move it inwards or outwards with respect to theindenting or outline structure: this could enable the user to manage aset of tasks, for example, as a work break-down structure.

There are other possible uses of indented lists, similar to thoseillustrated for lists of tasks associated with Ideas and Idea Pages.Examples of such lists might include: open issues or concerns associatedwith an Idea or Idea Page, lists of meetings, lists of work assignments,etc.

A system 100 that provides the functions and IPUI 260 described abovecould be built using a Model-View-Controller (“MVC”) architecture, asillustrated in with FIG. 21. MVC is a design pattern used for buildinginteractive applications that need to maintain multiple views of thesame data.

MVC divides applications into three layers (Model 2110, View 2120, andController 2130) and decouples their respective responsibilities. Eachlayer handles specific tasks and has specific responsibilities to theother areas.

A Model 2110 represents business data and business logic or operationsthat govern access and modification of this business data. Often theModel 2110 serves as a software approximation to real-worldfunctionality. The Model 2110 notifies Views 2120 when it changes andprovides the ability for the view to query the Model 2110 about itsstate. It also provides the ability for the Controller 2130 to accessapplication functionality encapsulated by the Model.

A View 2120 renders the contents of a Model 2110. It accesses data fromthe Model 2110 and specifies how that data should be presented. The View2120 updates data presentation when the Model 2110 changes. A View 2120also forwards user input to a Controller 2130.

A Controller 2130 defines application behavior. It dispatches userrequests and selects a View 2120 for presentation. It interprets userinputs and maps them into actions to be performed by the Model 2110. AController 2130 selects the next View 2120 to display based on the userinteractions and the outcome of the Model 2110 operations. Anapplication may have one Controller 2130 for each set of relatedfunctionality. Some applications may use a separate Controller 2130 foreach client type, because View interaction and selection often varybetween client types.

In addition, the Observer design pattern (not shown) allows severalViews 2120 to observe a single Model 2110 and display changes to itwhile the Model 2110 knows nothing about these Views 2120.

The system 100 could be made operational variously as a Client-ServerSystem, where each user's computer exchanges messages primarily with acentral server located on a LAN, WAN or VPN, where the specific networkmay further be organized, optionally, as multi-tiered or cascadednetworks.

Depending upon individual user preferences; environmentalconsiderations, such as security or information management policies,procedures and systems in effect within an organization that deploys thesystem 100; hardware or software limitations and capabilities such asprocessing power, memory availability, bandwidth availability, etc;legal, social or public policy considerations or requirements; etc., thesystem 100 could be configured to centralize storage of all Ideas, IdeaPages and Associated Objects (Items).

An example of such considerations may be found in the financial servicesindustry, where legal obligations regarding preservation of records andcommunications suggest that a central repository of all systeminformation be maintained for backup or monitoring purposes. Wherestorage of Items is centralized, the system 100 could be configured toallow individual users with portable computers and electronic devices tohave local access to some or all of their Items, when their computer orelectronic device is not connected to the central server(s). In suchoffline access, the system 100 could be configured to allow users tomake changes to their local copies of Items; when these users regainconnectivity to the central server(s), the system 100 could provide asynchronization function to sort through and help match up changes madeby different users to shared Items.

In another embodiment, the system 100 may operate as an ApplicationService Provider (“ASP”) hosted service which is accessed using anIntranet, Extranet, virtual private network (“VPN”), or the publicInternet. In an ASP embodiment, the user could be provided with an IPUI260 as described above for use with a computer that includes a displayscreen and pointing device, or a so-called “thin client” that contains aminimal user interface for use with an electronic device (e.g., mobiletelephone, wireless PDA, etc.).

It should be noted that the terms “ASP” or “hosted service” do not implythat this configuration or implementation would be suitable only incircumstances where a commercial service is being offered by acorporation. It could also, for example, be employed or adapted forpurely internal use by an organization, such as a corporation thatwishes to offer the system's facilities and functions to its employeeswhile gaining the technological or economic advantages afforded by anASP configuration.

Another alternative could be to build a Web browser-based front-endwhere the front-end includes an engine, written in JavaScript andconcealed in a hidden frame within the Web browser, which acts as anintermediary between the user and the ASP's servers. The engine wouldmake asynchronous calls to the back-end server, done in anticipation ofdata requirements for the user based upon the user's recent actions. Anexample of this approach is illustrated in FIG. 22.

In FIG. 22 the IPUI 260 generates 2205 a script call to the Idea PageEngine 265. The Idea Page Engine 265 in turn generates 2210 an HTTPrequest to the web service 2201 of the Idea Page Server 110. The webservice 2201 sends 2215 a data request to a data store 2202 containingItem information. The data store processes 2220 the data request andreturns 2225 a data response to the web service 2201. The web service2201 generates 2230 a data response (e.g., an XML formatted response) tothe Idea Page Engine 265. The Idea Page Engine 265 processes the dataresponse to generate 2235 display data (e.g., HTML and Cascading StyleSheet data) for depicting the data response.

The engine 265 could be responsible for both rendering the interface andcommunicating with the server 110 on the user's behalf. It could allowthe user's interaction with the application to happen asynchronously,which could make for better performance and better (perceived)responsiveness to user actions.

An exemplary process for updating the IPUI 260 is illustrated in FIG.23. The IPUI updating process begins at block 2305 where an Item isobtained along with placement information for the Item within a Canvasor other Workspace. In decision block 2310 a determination is madewhether the Item is an associating item, e.g., is it connected in somefashion with any other items in the Workspace? If the Item is anassociating Item, in block 2315 the Item is placed in an associatedsetting in the Workspace. Next, in block 2320 Items to be associatedwith the placed Item are associated with the Item. In block 2325 theseItems of the workspace (and potentially other dependent or otherwiserelated Items) have their records updated. Next, in block 2330, adisplay is updated with the updated Items. Processing then cycles backto block 2305.

If in decision block 2310 it was determined that the Item is not anassociating Item, processing would proceed directly to block 2325 forprocessing as described above.

Every user action that normally would generate an HTTP request couldtake the form of a JavaScript call to the engine 265 instead. The engine265 could generate locally any response to a user action that does notrequire a trip back to the server 110, such as simple data validation,editing data in memory, and even some navigation. If the engine 265 wereto need something from the server 110 in order to respond, or if it issubmitting data for processing, loading additional interface code, orretrieving new data, the engine 265 could make those requestsasynchronously, perhaps using XML, thereby potentially reducing theperceived response time of the system 100.

An ASP service could be configured to keep some or all of the user'sdata (e.g., Items, configuration data, etc.) on a central server 110.The user may also be provided with local storage capabilities that allowhim/her to have access to some or all of the relevant data when he/sheis not connected to the ASP's computers or network. This could allow theuser to make changes to Items when he/she is not connected to thehosting service's central computers. When these users regainconnectivity to the central server(s), the system 100 could provide asynchronization function to sort through and help match up changes madeby different users to shared Items.

In a further embodiment, the system 100 may comprise a Peer-to-Peer(“P2P”) network, where each user's computer 200 is able to communicatedirectly with that of other users, with or without the assistance ofadditional server computers that provide rendezvous and relay services.Additionally, an a so-called “hybrid” P2P network, one or morerendezvous, relay or forwarding servers (not shown) may be needed tohelp manage connectivity difficulties caused by intervening firewalls orNetwork Address Translation (“NAT”) units, Dynamic Host Control Protocol(“DHCP”) implementations, or other considerations such as the temporaryabsence of some users or computers from the network.

Furthermore, in some embodiments, it may be desirable to utilize across-platform system 100. As the community of users who create andshare Idea Pages becomes larger, there could be a corresponding benefitto any individual user of the method and system 100 described herein.Therefore, there may be advantages to making the implementationavailable on a wide variety of computers and electronic devices, such asmobile phones and PDAs. A development approach that employed across-platform language like Java could help reduce duplication ofeffort in making the system 100 available or accessible through adiverse set of computers and electronic devices. Java is not the onlycross-platform language available: many other languages such as C,Python, Perl, etc. could provide similar advantages.

In some additional embodiments, a User Interface Toolkit could aid inthe implementation of this system 100. Numerous user interface toolkitsare available: for use with Java, from Sun Microsystems, Inc. of SantaClara, Calif.; for example, one could use Eclipse, from EclipseFoundation of Asheville, N.C.; NetBeans, from Sun Microsystems, Inc. ofSanta Clara, Calif.; or Piccolo from the Human-Computer Interaction Labat the University of Maryland in College Park, Md. It may be noted thatPiccolo supports the development of two-dimensional structured graphicsprograms, in general, and Zoomable User Interfaces (“ZUIs”), inparticular. This could aid in the creation and management of Idea Pages,making Piccolo a potentially useful toolkit to adopt in creating theIPUI 260.

Various embodiments may also benefit from the use of Object-OrientedDatabases. The data storage requirements of the system 100 could be metusing a combination of “flat files” (i.e., ordinary files accessedthrough the computer's hierarchical file system) and/or a database.

Content items that exist independently of the system 100, e.g., e-mailsor bookmarks that existed on the user's computer or electronic devicebefore they were associated with specific Ideas, could remain in place,and the system 100 could simply maintain pointers to these files.

Objects representing Ideas, Idea Pages, Tasks, Notes, etc. that areintrinsic to the system 100 could be stored in flat files or asystem-specific database. Using a database could reduce the possibilityof these objects being accidentally moved or deleted by the user.

If a database were to be used in implementing the system 100, anobject-oriented database (“OODB”) may offer some advantages to arelational database (“RDB”), depending upon the computer or electronicdevice being employed, and the hardware's capabilities, operating systemand general operating environment. For example, if an object-orientedlanguage such as Java were used to implement the system 100, an OODBmight be easier to incorporate than a RDB.

Alternately, if the Idea Pages were to be implemented as node graphs, aRDB may prove difficult or cumbersome to use in comparison with an OODBsince the data contained within the node graphs could have user-definedtypes along with many recursive references to other nodes. Thestructures and data access patterns may be more complex than queryingrows and columns linked or joined through mapping tables. Thenormalization of relational databases applied to this model and theobject-relational mapping process could represent significantdevelopment effort as well as possible system performance impairment.

If the Java language is used to implement portions of the system 100, itmay be desirable to employ the Java Data Objects (“JDO”) interface. JDOis an interface-based definition of object persistence for Java thatdescribes the storage, querying and retrieval of objects from datastores. Advantages of using JDO for implementing the system 100 mightinclude:

-   -   Transparent mapping of JDO instances to the underlying data        store.    -   There may be no need to add specific methods or attributes to        Java classes, or to alter the visibility of class members.    -   JDO could be used with a number of different storage paradigms,        including RDBs, OODBs, flat files and XML documents.    -   Since JDO is transparent to the data store itself, it could aid        in porting the system 100 from one vendor's OODB to another's.

Furthermore, If a P2P networking implementation is adopted, the JXTAframework may be helpful, since it offers P2P networking capabilitiesfor programs written in Java. JXTA is a set of open protocols that allowvarious connected devices, ranging from cell phones and wireless PDAs tocomputers and servers, to communicate and collaborate in a P2P manner.JXTA peers can create a virtual network where a peer could interact withother peers and resources directly even when some of the peers andresources are behind firewalls and NATs or are on different networktransports.

If the system 100 were implemented using Java, JXTA P2P networking andthe MVC architecture, it could use a collection of objects and packages,similar to those described below. In the context of the followingdescription, it should be noted that:

Every class described in these packages may subclass the Java class“object.class”.

The fictional organization “company” has been used simply to name thepackages and classes in a standard Java-format; it has no otherimplication or effect.

The suggested properties of a package that could be public, as well assuggested variables and properties that might be static, are all capitalletters.

Of the various packages that could be used to implement the system 100,the Idea Package would be an important one, and could be organized asdescriber. Likewise, it could contain objects needed to store thepersistent data that might be used by other packages. Examples ofpersistent data include: Title of Idea; Size (of shape that contains orrepresents Idea, if any); Location (on screen); Shape (e.g., rectangle,ellipse, etc.); Access Control List; etc. This package could include thefollowing classes:

Idea (com.company.idea)

The purpose of this class could be to hold fundamental informationrelating to an Idea, such as its name, owner, priority (if any), etc. Asuggested set of properties and operations for this class might includethe following:

(1) Properties:

-   -   CHILD:int    -   DOCUMENT:int    -   LOG:Logger    -   HIGH:int    -   MEDIUM:int    -   LOW:int    -   PROJECT:int    -   RELATIONSHIP:int    -   NOTE:int    -   TASK:int    -   TRASH:int    -   acl:Acl    -   alarms:List    -   alerts:List    -   completionDate:long    -   createdDate:long    -   description:String    -   documentPath:String    -   dueDate:long    -   id:String    -   isRecurrence:boolean    -   keywords:KeywordTemplate    -   lastViewedDate:long    -   layout:Layout    -   localSerialVersionUID:long    -   locations:IdeaTemplate    -   lock:String    -   modifiedDate:long    -   priorityLevel:int    -   notes:IdeaTemplate    -   serialVersionUID:long    -   tasks:IdeaTemplate    -   title:String

(2) Operations:

-   -   Idea ( )    -   addLocation ( )    -   addPrincipal ( )    -   addNote ( )    -   addTask ( )    -   applyLock ( )    -   checkPermission ( )    -   compareTo ( )    -   equals ( )    -   getAcl ( )    -   getAlarms ( )    -   getAlerts ( )    -   getCompletionDate ( )    -   getCreatedDate ( )    -   getDescription ( )    -   getDocumentPath ( )    -   getDueDate ( )    -   getExt ( )    -   getID ( )    -   getKeywords ( )    -   getLastViewedDate ( )    -   getLayout ( )    -   getLocations ( )    -   getLockReference ( )    -   getModifiedDate ( )    -   getPriorityLevel ( )    -   getNotes ( )    -   getSize ( )    -   getTasks ( )    -   getTitle ( )    -   getType ( )    -   hashCode ( )    -   isInTrash ( )    -   isLocked ( )    -   isOwner ( )    -   isPublic ( )    -   isRecurrence ( )    -   readExternal ( )    -   removeEntry ( )    -   removeLock ( )    -   setAcl ( )    -   setCompletionDate ( )    -   setCreatedDate ( )    -   setDescription ( )    -   setDocumentPath ( )    -   setDueDate ( )    -   setExt ( )    -   setID ( )    -   setIsRecurrence ( )    -   setKeywords ( )    -   setLastViewedDate ( )    -   setLayout ( )    -   setLocations ( )    -   setModifiedDate ( )    -   setOwner ( )    -   setPermissions ( )    -   setPriorityLevel ( )    -   setNotes ( )    -   setSize ( )    -   setTasks ( )    -   setTitle ( )    -   setType ( )    -   toString ( )    -   typeToString ( )    -   writeExternal ( )

Child (com.company.idea)

The purpose of this class could be to associate a layout (i.e., positionon the screen) with an Idea. A suggested set of properties andoperations for this class might include the following:

(1) Properties:

-   -   LOG:Logger    -   idea:Idea    -   ext:String    -   localSerialVersionUID:long    -   serialVersionUID:long    -   type:int

(2) Operations:

-   -   Child ( )    -   addLocation ( )    -   equals ( )    -   getAcl ( )    -   getDescription ( )    -   getExt ( )    -   getID ( )    -   getLocations ( )    -   getNode ( )    -   getSize ( )    -   getTitle ( )    -   getType ( )    -   readExternal ( )    -   setDescription ( )    -   setExt ( )    -   setID ( )    -   setNode ( )    -   setSize ( )    -   setTitle ( )    -   setType ( )    -   typeToString ( )    -   writeExternal ( )

Document (com.company.idea)

The purpose of this class could be to wrap files from the local filesystem on the computer or electronic device that implements this system.A suggested set of properties and operations for this class mightinclude the following:

(1) Properties:

-   -   DEFAULT:int    -   E-MAIL:int    -   URL:int    -   docType:int    -   ext:String    -   localSerialVersionUID:long    -   logger:Logger    -   serialVersionUID:long    -   size:long    -   type:int

(2) Operations:

-   -   Document ( )    -   equals ( )    -   getDocType ( )    -   getExt ( )    -   getSize ( )    -   getType ( )    -   isE-mail ( )    -   isURL ( )    -   readExternal ( )    -   setDocType ( )    -   setExt ( )    -   setSize ( )    -   setType ( )    -   typeToString ( )    -   writeExternal ( )

Task (com.company.idea)

The purpose of this class could be to keep track of tasks that areassociated with Ideas. A suggested set of properties and operations forthis class might include the following:

(1) Properties:

-   -   LOG:Logger    -   ext:String    -   localSerialVersionUID:long    -   serialVersionUID:long    -   type:int

(2) Operations:

-   -   Task( )    -   getExt ( )    -   getSize ( )    -   getType ( )    -   setExt ( )    -   setSize ( )    -   setType ( )    -   typeToString ( )

Project (com.company.idea)

The purpose of this class could be to manage Complex Ideas. A suggestedset of properties and operations for this class might include thefollowing:

(1) Properties:

-   -   serialVersionUID:long    -   localSerialVersionUID:long    -   DEFAULT_TITLE:String    -   PROJECT:int    -   children:IdeaTemplate    -   documents:IdeaTemplate    -   relationships:IdeaTemplate

(2) Operations:

-   -   Project ( )    -   getType ( )    -   setType ( )    -   getSize ( )    -   setSize ( )    -   setExt ( )    -   getExt ( )    -   getDocuments ( )    -   setDocuments ( )    -   getRelationships ( )    -   setRelationships ( )    -   getChildren ( )    -   setChildren ( )    -   addDocument ( )    -   addChild ( )    -   addRelationship ( )    -   typeToString ( )    -   writeExternal ( )    -   readExternal ( )

Relationship (com.company.idea)

The purpose of this class could be to manage Ideas that representrelationships between other Ideas, e.g. an arrow that links two Ideashapes within a Workspace canvas. A suggested set of properties andoperations for this class might include the following:

(1) Properties:

-   -   BASIC:int    -   DEPENDENCY:int    -   LOG:Logger    -   MAX_WIDTH:int    -   ROLE_NULL:String    -   ROLE_PRIMARY:String    -   ROLE_SECONDARY:String    -   buffer:StringBuffer    -   ext:String    -   localSerialVersionUID:long    -   primary:Idea    -   relType:int    -   secondary:Idea    -   serialVersionUID:long    -   type:int

(2) Operations:

-   -   Relationship ( )    -   getExt ( )    -   getNode ( )    -   getPrimary ( )    -   getRelType ( )    -   getRole ( )    -   getSecondary ( )    -   getSize ( )    -   getTitle ( )    -   getType ( )    -   inRelationship ( )    -   isOwner ( )    -   readExternal ( )    -   removeNode ( )    -   setExt ( )    -   setPrimary ( )    -   setRelType ( )    -   setRole ( )    -   setSecondary ( )    -   setSize ( )    -   setType ( )    -   toString ( )    -   typeToString ( )    -   writeExternal ( )

Note (com.company.idea)

The purpose of this class could be to manage Notes that are associatedwith Ideas, Idea Pages and Associated Objects like content items, etc. Asuggested set of properties and operations for this class might includethe following:

(1) Properties:

-   -   LOG:Logger    -   ext:String    -   localSerialVersionUID:long    -   serialVersionUID:long    -   type:int

(2) Operations:

-   -   Note ( )    -   getExt ( )    -   getSize ( )    -   getType ( )    -   setExt ( )    -   setSize ( )    -   setType ( )    -   typeToString ( )

Layout (com.company.idea)

The purpose of this class could be to keep track of the position of anIdea on an Idea Page; it could also be used to maintain other layoutinformation to help in providing zooming views, rotation, etc. Asuggested set of properties and operations for this class might includethe following:

(1) Properties:

-   -   DEFAULT_ARRANGE_AS:String    -   DEFAULT_MATRIX:double [ ]    -   arrangeAs:String    -   localSerialVersionUID:long    -   logger:Logger    -   matrix:double [ ]    -   point:Point    -   serialVersionUID:long    -   transform:AffineTransform

(2) Operations:

-   -   Layout ( )    -   clone ( )    -   equals ( )    -   getArrangeAs ( )    -   getMatrix ( )    -   getOffset ( )    -   getTransform ( )    -   hashCode ( )    -   offset ( )    -   readExternal ( )    -   rotate ( )    -   rotate ( )    -   scale ( )    -   setArrangeAs ( )    -   setMatrix ( )    -   setMatrix ( )    -   setOffset ( )    -   setRotation ( )    -   setRotation ( )    -   setScale ( )    -   setShear ( )    -   setTranslate ( )    -   shear ( )    -   translate ( )    -   updateMatrix( )    -   writeExternal ( )

AccessControlledItem (com.company.security.acl)

The purpose of this class could be to help identify the existence of anyAccess Control Lists, and to help implement these ACLs. A suggested setof properties and operations for this class might include the following:

(1) Operations

-   -   addPrincipal ( )    -   checkPermission ( )    -   getAcl ( )    -   isOwner ( )    -   removeEntry ( )    -   setAcl ( )    -   setOwner ( )    -   setPermissions ( )

IdentifiableItem (com.company)

The purpose of this class could be to help distinguish an item fromothers. A suggested set of properties and operations for this classmight include the following:

(1) Operations

-   -   getID ( )    -   setID ( )

Comparable (java.lang)

This is a standard Java class. A possible set of operations of interestfor this class might include the following:

(1) Operations

-   -   compareTo ( )

Externalizable (java.io)

This is a standard Java class. A possible set of operations of interestfor this class might include the following:

(1) Operations

-   -   readExternal ( )    -   writeExternal ( )

Object (java.lang)

This is a standard Java class. A possible set of operations of interestfor this class might include the following:

(1) Operations

-   -   Object ( )    -   clone ( )    -   equals ( )    -   finalize ( )    -   getClass ( )    -   hashCode ( )    -   notify ( )    -   notifyAll ( )    -   registerNatives ( )    -   toString ( )    -   wait( )

Other packages that could be developed to help implement the system 100include the following:

User: this package could store persistent data about different users. Itcould contain references to a list of Ideas or Pages with which aparticular user is involved. It could include personal information(e.g., name, password, system ID, contact information, etc.).

ACL: this package could manage object security in the form of lists thatcontain principals, where each principal has a permission level. Anobject could use this class to determine whether a principal has thesufficient level of permissions needed to perform an action.

Network: this package could define a message object that the system 100uses to serialize for communications with other users over a network, tobreak up large messages into smaller chunks, to assemble back togethermessages from smaller chunks, etc. This package could be developed in away that allows the system 100 to use JXTA or a variety of othercommunication protocols, such as other P2P protocols, TCP/IP sockets,etc.

DataAccess: this package could implement a JDO layer and thereby providean interface or layering of the specific OODB that might be used inimplementing the system 100. This package could also, among otherfunctions, handle database transactions and send database transactionevents to listeners (e.g., any object that implements the listeninginterface).

Application: this package could define Models and Controllers accordingto the MVC architecture (note that Views could be in the UI package).This package could handle interactions with data access layer throughthe Controllers and Models and also provide an interface between thesystem 100 and operating system on the computer or electronic devicethat implements part or all of the system 100. This package could alsoregister and authenticate users.

Although specific embodiments have been illustrated and describedherein, it will be appreciated by those of ordinary skill in the artthat a wide variety of alternate and/or equivalent implementations maybe substituted for the specific embodiments shown and described withoutdeparting from the scope of the present invention. This application isintended to cover any adaptations or variations of the embodimentsdiscussed herein. Therefore, it is manifestly intended that thisinvention be limited only by the claims and the equivalents thereof.More specifically, some extension to and alternate embodiments aredescribed below.

Command-line Access: while the implementation of the system 100described above suggests the use of a graphical IPUI 260, it may also beadvantageous to for a command-line access to the system's features anddata. This could allow users to create Ideas, manipulate Idea Pages,associate objects with Ideas, etc. without invoking the a graphicalimplementation of the IPUI 260.

The command line interface (another form of the IPUI 260) could bedeveloped using a simple text-based menu. A command-line interface coulduse much of the object model and architecture that has been proposed forthe GUI version, with some relatively simple adaptations and extensionsto objects to eliminate any dependencies on specific keyboardconfigurations or the presence or absence and specific capabilities ofpointing devices.

Simple GUI: the GUI described above may prove inefficient incircumstances where the user is employing an electronic device (e.g.,mobile telephone, PDA, etc.) which offers limited screen size andresolution. Therefore, it may be advantageous to also provide a simpleruser interface based upon lists, for example, rather than pictures.Users who access the system 100 variously by means of a computer with ahigh-resolution screen and an electronic device with low screenresolution may find it advantageous to access the same underlying data(e.g., Ideas, Idea Pages, Associated Objects, etc.) by means of a GUIand a simpler user interface.

Bookmarks: a Bookmark Bar (not shown) could be added to the IPUI 260,for example by placing just below the Tool Bar and above the Workspace.The Bookmark Bar could work similar to bookmark bars in Web browserssuch as Microsoft Corporation's Internet Explorer. The user could dragItems onto the Bookmark Bar to create a short-cut to that Item.

Security: the system 100 described above may be enhanced with additionalsecurity features for authentication, encryption, non-repudiation, dataintegrity, etc. One implementation of security might be to incorporate aPublic Key Infrastructure (“PKI”) model.

Notifications Subsystem: notifications refers to the process by which auser of the system 100 is made aware that an Item to which he/she hasaccess—either as an Owner or as a Recipient—has been modified. While aminimal degree of notifications could be desirable in any implementationof the system 100, this process could be made more elaborate, e.g. byproviding filters and preference settings that determine the degree andmanner in which any user is provided with notifications: e.g. changes tocertain Idea Pages may generate messages to a user's mobile phone orwireless PDA, while other changes to other Idea Pages or other items maysimply generate an e-mail message containing the notification.

Similarly, notifications of a similar nature, e.g. all notificationsthat relate to changes in a particular type of content such asspreadsheets could be grouped together and presented differently fromnotifications that relate to changes in other types of content.

Calendar Subsystem: to further facilitate the use of Idea Pages inproject management, a calendar subsystem could be incorporated into theIPUI 260 which allows for easy scheduling of Items. The calendar couldappear as one of the Panes within the Details Sidebar, using the basicIPUI 260 layout proposed in FIG. 17. It could be made possible for theuser to drag any Item from a Workspace canvas (or the appropriate Panewithin the Details Sidebar in the case of an Associated Object) onto theCalendar using a mouse or other pointing device, thereby establishing,or changing, the Start Date and End Date attributes of the Item.

Once Items have been dragged onto the Calendar Pane, the entries thereincould be moved around from one day or hour to another, thereby changingthe Start and End Dates, or be stretched or otherwise resized by theuser in order to change the proposed duration (i.e., difference betweenStart and End Dates) of the relevant item.

Furthermore, the Calendar could incorporate an import and exportfacility, using open standards such as iCalendar in order to provide foreasy coordination with other, external calendars maintained by externalor third-party applications or other electronic devices, such as mobilephones, wireless PDAs, etc.

Templates: Idea Pages could be used for sundry personal and professionalpurposes such as managing projects, initiatives and movements, leadingdiscussions, developing and managing communities, and managingorganizations and groups. Users could publish, distribute or shareprocess (e.g., industry best practices, corporate standards, etc.) bycreating templates from existing Idea Pages. These templates couldinclude any collection of Items.

Importing and Exporting: the system 100 could provide for importing andexporting of Ideas and Idea Pages using industry-standard formats suchas XML, as well as proprietary formats that may be developed in thefuture. This could allow for data interchange between the system 100 andother complementary or supplementary hardware/software such as:

-   -   Importing and exporting to project management systems (e.g.,        Microsoft Corporation's Microsoft Project).    -   Integration with external supply-chain collaboration software.    -   Integration with other Web-based systems.    -   Integration with enterprise resource planning systems, human        resource systems, financial systems, customer relationship        management systems, general ledger systems, and other corporate        information management systems.

Application Programmer Interface (“API”): an API, having a set ofdefined programmatic interfaces to the system 100, could be createdwhich could allow external or third-party software developers to accessthe contents of Ideas Pages, including Ideas and Associated Objects.

Audit Trails and Monitoring: the system 100 could be enhanced withadditional controls and mechanisms for preserving audit trails, whichcould, for example, keep activity and usage logs, as well as provide forreal-time, batch and post facto monitoring of users. These featurescould provide automatic alerts to system managers/administrators, aswell as filters and reports to create custom views of the usage data,etc.

Organizational Controls: the system 100 could be enhanced to provideadditional controls for organizations that deploy the system 100 totheir employees, subscribers or other communities, where these controlsprovide limitations on the kind or size of Items that a user may create,share, manage or remove; restrictions on the kind or size or groups ofusers that share Items; and similar restrictions that organizations mayfind useful in managing their use of the system 100.

User Directory Interfaces: the system 100 could also incorporate linksor interfaces to external directories or rosters of people, tofacilitate the process by which a user could locate other suitablepeople with whom to share one or more Items. These links could, forexample, be based upon the Lightweight Directory Access Protocol(“LDAP”) in order to connect to directory systems that maintain userinformation. Another example might be to connect to online services suchas those offered by Linked in Corporation of Palo Alto, Calif.

1. A computer-implemented Item association method, the methodcomprising: associating an Idea with an Idea Page; associating arepresentation of an Item with said Idea; and depicting said Idea Pagewith said Idea with said representation of an Item to a user interface.2. The method of claim 1, further comprising associating said Idea Pagewith a Workspace.
 3. The method of claim 1, wherein associating saidrepresentation of an Item with said Idea comprises obtaining an actionindicating that said representation of an Item is to be associated withsaid Idea.
 4. The method of claim 1, further comprising associating asecond Idea with said Idea Page.
 5. The method of claim 4, wherein saidsecond Idea is a complex Idea.
 6. The method of claim 4, furthercomprising limiting access to said second Idea.
 7. The method of claim6, wherein limiting access comprises authenticating a user.
 8. Themethod of claim 6, further comprising checking an access control list.9. The method of claim 7, wherein a user is the owner of said secondIdea.
 10. The method of claim 6, wherein said second Idea's limitedaccess is inherited from said Idea Page.
 11. The method of claim 4,further comprising associating said Idea and said second Idea.
 12. Themethod of claim 4, wherein said Idea and said second Idea are associatedvia a Third Idea.
 13. The method of claim 1, further comprisingassociating said Idea with a second Idea Page.
 14. The method of claim1, further comprising depicting the Item represented by saidrepresentation of an Item.
 15. The method of claim 1, further comprisingadding a note to said Item.
 16. The method of claim 1, furthercomprising adding an attribute to said Item.
 17. The method of claim 16,wherein said attribute is a dynamic attribute.
 18. The method of claim1, further comprising sharing said Item with a remote user.
 19. Themethod of claim 1, further comprising generating a notification of achange to said Item.
 20. The method of claim 19, wherein saidnotification is an auditable notification.
 21. A computer readablemedium containing computer executable instruction for performing themethod of claim
 1. 22. A computing system having a processor coupled toa memory containing computer executable instruction for performing themethod of claim
 1. 23. A computing system operative to represent ideas,comprising: means for associating an Idea with an Idea Page; means forassociating a representation of an Item with said Idea; and means fordepicting said Idea Page with said Idea with said representation of anItem to a user interface.
 24. A computer user interface comprising: anIdea Page; a representation of an Idea; a representation of an Item;wherein said Idea Page contains said representation of an Idea; andwherein the user interface is operative to: associate saidrepresentation of an Item with the Idea of said representation of anIdea.
 25. The user interface of claim 24, wherein said Idea Page isassociated with a Workspace.
 26. The user interface of claim 24, whereinassociating said representation of an Item with the Idea comprisesobtaining an action indicating that said representation of an Item is tobe associated with the Idea.
 27. The user interface of claim 24, furthercomprising a second Idea associated with said Idea Page.
 28. The userinterface of claim 27, wherein said second Idea is a Complex Idea. 29.The user interface of claim 27, further operative to limit access tosaid second Idea.
 30. The user interface of claim 29, wherein limitingaccess comprises authenticating a user.
 31. The user interface of claim29, further operative to check an access control list.
 32. The userinterface of claim 29, wherein said second Idea's limited access isinherited from said Idea Page.
 33. The user interface of claim 27,further comprising associating said representation of an Idea with arepresentation of said second Idea.
 34. The user interface of claim 33,wherein said representation of an Idea is associate with arepresentation of said second Idea via a representation of a third Idea.35. The user interface of claim 24, further operative to depict the Itemrepresented by said representation of an Item.
 36. The user interface ofclaim 24, further operative to add a note to said Item.
 37. The userinterface of claim 24, further operative to add an attribute to saidItem.
 38. The user interface of claim 37, wherein said attribute is adynamic attribute.
 39. The user interface of claim 38, further operativeto update said dynamic attribute.
 40. The user interface of claim 24,further operative to generate a notification of a change to said Item.41. The user interface of claim 40, wherein said notification isgenerated in a decoupled environment.
 42. The user interface of claim24, wherein said Idea Page is comprises a two-dimensional space.
 43. Theuser interface of claim 24, wherein said Idea Page is comprises athree-dimensional space.
 44. The user interface of claim 24, whereinsaid Idea Page is comprises a textual interface.
 45. A computer readablemedium containing computer executable instruction for depicting the userinterface of claim
 24. 46. A computing system having a processor coupledto a memory containing computer executable instruction for depicting theuser interface of claim 24.